Construire un serveur haute performance en Rust est un voyage vers abstractions à coût nul. En déplaçant la complexité du temps d'exécution vers le temps de compilation en utilisant macros procédurales, nous assurons que notre logique de routage est aussi efficace que l'assemblage manuel.
1. Le squelette
Nous commençons par $ cargo new hello et $ cd hello. La boucle de retour est accélérée par $ cargo check, qui vérifie les types sans le coût de génération complète du binaire.
2. Méta-programmation procédurale
Contrairement à macro_rules!, macros semblables aux attributs (par exemple, #[route]) et macros semblables aux fonctions (par exemple, sql!()) manipulent le TokenStream directement. Les macros d'attributs sont uniques ; elles peuvent remplacer l'élément qu'elles annotent, ce qui nous permet d'envelopper les fonctions gestionnaires dans des tables de routage pré-optimisées pendant la compilation.